The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Traditional software development models continue to cause problems for enterprises in the business of creating, licensing and supporting software. The end results are often not flexible enough to keep pace with the ever changing requirements of the business customer. What starts out as a clearly defined implementation often becomes quite a convoluted solution. Even if the overall flow of an application initially is clearly defined, the resulting solution often ends up blurring this flow with unrelated issues such as the user interface and back-end systems integration.
When technologies such as Java Server Pages (JSPs) first arrived they were hailed as a breakthrough to permit one to design and implement web based applications where the user interface was quick and easy to maintain. Unfortunately these systems proved to be not so wonderful on their own. While they were easy and quick to develop, people still blurred the user interface with the actual application decisions and “flow” of the back-end data processing. Consequently, professional developers now generally adhere to a three-tier development model that separates the user interface, control model or process, and back-end systems or services. In this approach, the user interface may be implemented with any of several systems such as JSPs, XSL-stylesheets, Visual Basic, Javascript and the like. This approach also allows the user interface to decide how to present the information to the user using WAP, HTML, or other technology depending on how the user is accessing the system.
The back-end systems or services store data using any of databases, legacy applications, or CRM systems. The Control Model (or Process) Layer ties together the data and user interface, comprising processing logic to determine what step must be performed next, what data must be presented to the user next, what back-end database, or application, needs to be updated as a result of the previous user interaction, and so forth. A layered approach that involves a mix of appropriate user interface and database systems cannot succeed unless the Control Model (Process) Layer is effective. The layered approach also permits developers to spend less time on the user interface or data systems and more time on the developing the controlling process. It will be apparent that good process support technology is necessary to the success of a layered project.
Automated workflow management is a branch of computer science that deals with computer-executed programs that manage technical and business processes. For example, various kinds of business-to-business interactions, such as between suppliers and buyers or partners, can be managed in this manner. A process, in this context, is a series of tasks that achieve a common purpose; each task is performed by a person or a software application. Typically work is automatically sent to a recipient; work directed to individuals may flow using web pages, e-mail messages, or notifications within a software application, and work directed to applications may flow through an integration system. Processes can involve tasks for multiple different departments of an enterprise, or multiple different companies or enterprises, for example, customers and their suppliers. Processes typically include one or more tasks that require review or approval, and complex approval chains may be reflected in a workflow. Arranging tasks as processes with computer program support enables automated orchestration of complex series of tasks across many different work units in an enterprise. Both individuals and applications can be involved, and computers involved in the system can be programmed to handle errors, cancellation, and roll-back of tasks, applications or data. The computers also can provide monitoring and tracking, and can be arranged in an infrastructure that can be replicated to provide added capacity. These systems can be programmed to permit rapid changes in the definition of processes, so they can adapt to changes in underlying business structures or agreements.